package com.lrw.util;

import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import com.vingsoft.iframework.security.springsecurity.SpringSecurityUtils;
import com.vingsoft.iframework.utils.ExportExcel;

/**
 * 文件上传 文件路径规则：项目名+temp文件夹+用户ID文件夹+文件名
 * 
 * @author huzj
 * @describe
 * 
 */
@SuppressWarnings("serial")
public class UploadServlet extends HttpServlet {

	@SuppressWarnings("unchecked")
	public void doPost(HttpServletRequest request, HttpServletResponse response)

	throws ServletException, IOException {
/*		OperatorDetails loginUser = SpringSecurityUtils.getCurrentUser();
		long id = loginUser.getUser().getId();
		String savePath = this.getServletConfig().getServletContext()

		.getRealPath("");

		savePath = savePath + File.separator + "temp" + File.separator
				+ String.valueOf(id) + File.separator;
		ExportExcel.clear(savePath);
		File f1 = new File(savePath);*/

		// System.out.println(savePath);

	/*	if (!f1.exists()) {

			f1.mkdirs();

		}*/

		DiskFileItemFactory fac = new DiskFileItemFactory();

		ServletFileUpload upload = new ServletFileUpload(fac);

		upload.setHeaderEncoding("utf-8");

		List fileList = null;

		try {

			fileList = upload.parseRequest(request);

		} catch (FileUploadException ex) {

			return;

		}

		Iterator<FileItem> it = fileList.iterator();

		String name = "";

		String extName = "";

		while (it.hasNext()) {

			FileItem item = it.next();

			if (!item.isFormField()) {

				name = item.getName();

				long size = item.getSize();

				String type = item.getContentType();

				// System.out.println(size + " " + type);

				if (name == null || name.trim().equals("")) {

					continue;

				}

				// 扩展名格式：

				if (name.lastIndexOf(".") >= 0) {

					extName = name.substring(name.lastIndexOf("."));

				}

				File file = null;

				do {

					// 生成文件名：

					// name = UUID.randomUUID().toString();

					// file = new File(savePath + name + extName);
				//	file = new File(savePath + name);
				} while (file.exists());

				// File saveFile = new File(savePath + name + extName);
			//	File saveFile = new File(savePath + name);

				try {

				//	item.write(saveFile);

				} catch (Exception e) {

					e.printStackTrace();

				}

			}

		}

		response.getWriter().print(name + extName);

	}

}